import { IPSModelSortable } from '../../ipsmodel-sortable';
import { IPSApplicationObject } from '../ipsapplication-object';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppEditorStyleRef
 */
export interface IPSAppEditorStyleRef extends IPSApplicationObject, IPSModelSortable {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 容器类型
   * @type {string}
   */
  containerType: string;

  /**
   * 编辑器类型
   * @type {string}
   */
  editorType: string;

  /**
   * 前端模板插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端模板插件
   *
   * @type {IPSSysPFPlugin}
   */
  get psSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端模板插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 插件代码
   * @type {string}
   */
  pluginCode: string;

  /**
   * 引用标记
   * @type {string}
   */
  refTag: string;

  /**
   * 样式代码
   * @type {string}
   */
  styleCode: string;

  /**
   * 仅扩展界面样式
   * @type {boolean}
   * @default false
   */
  extendStyleOnly: boolean;
}
